<?php
/**
 * автора забыл
 * */
class Token
{
		public $memcache;
		private $token_uid;
		private $project, $username;

		public function __construct()
		{
				global $config;
				$this->memcache = new Memcache();
				$this->memcache->connect($config['memcache_host'], $config['memcache_port']) or die('Could not connect to memcached');
				$this->token_uid = $this->generateToken();
		}

		public function __destruct()
		{
				$this->memcache->close;
		}

		public function newToken($project, $username) {
				//die(var_dump($this));
				if (!isset($this->memcache))
						die('Token not initialized!');

				$this->project = $project;
				$this->username = $username;

				$this->memcache->set($this->token_uid, array($project, $username), false, 120); // предпоследний параметр - флаг ZLIB компрессии, последний - время жизни записи в секундах.
				return $this->token_uid;
		}

		public function getToken($token_uid)
		{
				return $this->memcache->get($token_uid);
		}

		private function generateToken()
		{
				return sha1(time() . rand(0, 100));
		}
}